도구 함수

Anthropic
Claude에서 열기
이 강좌에 대해 질문하기
노트 복사
LLM용 전체 강좌 노트 복사

Claude로 AI 애플리케이션을 구축할 때, 실시간 정보에 대한 접근권이나 작업을 수행할 수 있는 능력을 부여해야 하는 경우가 많습니다. 이때 도구 함수가 필요합니다 - 도구 함수는 Claude가 사용자를 돕기 위해 추가 데이터가 필요할 때 호출할 수 있는 Python 함수입니다.

위 이미지는 우리가 구현할 세 가지 필수 도구를 보여줍니다: 현재 날짜/시간 가져오기, 날짜에 기간 추가하기, 그리고 알림 설정하기. 첫 번째부터 시작해 봅시다.

도구 함수란 무엇인가?

도구 함수는 Claude가 사용자를 돕기 위해 추가 정보가 필요하다고 판단할 때 자동으로 실행되는 일반 Python 함수입니다. 예를 들어, 누군가 "지금 몇 시야?"라고 물으면, Claude는 현재 시간을 가져오기 위해 날짜/시간 도구를 호출할 것입니다.

날씨 도구 함수의 예시입니다. 입력값을 검증하고 명확한 오류 메시지를 제공하는 방식에 주목하세요 - 이것들은 중요한 모범 사례입니다.

도구 함수 모범 사례

도구 함수를 작성할 때 다음 지침을 따르세요:

  • 설명적인 이름 사용: 함수 이름과 매개변수 이름 모두 목적을 명확하게 나타내야 합니다
  • 입력값 검증: 필수 매개변수가 비어 있거나 유효하지 않은지 확인하고, 그럴 경우 오류를 발생시키세요
  • 의미 있는 오류 메시지 제공: Claude는 오류 메시지를 볼 수 있으며 수정된 매개변수로 함수 호출을 재시도할 수 있습니다

Claude가 오류를 통해 학습하기 때문에 검증은 특히 중요합니다. "Location cannot be empty"와 같은 명확한 오류를 발생시키면, Claude는 적절한 위치 값으로 함수를 다시 호출하려고 시도할 수 있습니다.

첫 번째 도구 함수 만들기

현재 날짜와 시간을 가져오는 함수를 만들어 봅시다. 이 함수는 Claude가 다양한 형식으로 시간을 요청할 수 있도록 날짜 형식 매개변수를 받습니다:

def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
    if not date_format:
        raise ValueError("date_format cannot be empty")
    return datetime.now().strftime(date_format)

이 함수는 Python의 datetime 모듈을 사용하여 현재 시간을 가져오고 제공된 형식 문자열에 따라 형식을 지정합니다. 기본 형식은 연-월-일 시:분:초를 제공합니다.

다양한 형식으로 테스트할 수 있습니다:

# Default format: "2024-01-15 14:30:25"
get_current_datetime()

# Just hour and minute: "14:30"
get_current_datetime("%H:%M")

검증 확인은 Claude가 날짜 형식으로 빈 문자열을 전달할 수 없도록 보장합니다. 이 특정 오류는 발생 가능성이 낮지만, 입력값을 검증하고 Claude가 학습할 수 있는 유용한 오류 메시지를 제공하는 패턴을 보여줍니다.

다음 단계

함수를 만드는 것은 첫 번째 단계에 불과합니다. 다음으로, Claude에게 함수를 설명하는 JSON 스키마를 작성한 다음 채팅 시스템에 통합해야 합니다. 이 도구 함수 접근 방식은 코드를 체계적으로 유지하면서 Claude에게 강력한 기능을 제공합니다.

다운로드